home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------------------ */
- /*
- HTTrack Website Copier, Offline Browser for Windows and Unix
- Copyright (C) Xavier Roche and other contributors
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- as published by the Free Software Foundation; either version 2
- of the License, or any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-
- Important notes:
-
- - We hereby ask people using this source NOT to use it in purpose of grabbing
- emails addresses, or collecting any other private information on persons.
- This would disgrace our work, and spoil the many hours we spent on it.
-
-
- Please visit our Website: http://www.httrack.com
- */
-
-
- /* ------------------------------------------------------------ */
- /* File: Basic net definitions */
- /* Used in .c and .h files that needs T_SOC and so */
- /* Author: Xavier Roche */
- /* ------------------------------------------------------------ */
-
- #ifndef HTS_DEFBASENETH
- #define HTS_DEFBASENETH
-
- #if HTS_WIN
-
- #if HTS_INET6==0
- #include <winsock2.h>
- #else
-
- #ifndef _WIN32_WCE
- #undef HTS_USESCOPEID
- #define WIN32_LEAN_AND_MEAN
- #include <winsock2.h>
- #include <ws2tcpip.h>
- #include <tpipv6.h>
- #else
- #include <winsock2.h>
- #include <socket.h>
- #endif
-
- #endif
-
- typedef SOCKET T_SOC;
- typedef struct hostent FAR t_hostent;
-
- #else
- #define HTS_USESCOPEID
- #define INVALID_SOCKET -1
- typedef int T_SOC;
- typedef struct hostent t_hostent;
- #endif
-
- #if HTS_USEOPENSSL
- /*
- OpensSSL crypto routines by Eric Young (eay@cryptsoft.com)
- Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- All rights reserved
- */
- #ifndef HTS_OPENSSL_H_INCLUDED
- #define HTS_OPENSSL_H_INCLUDED
-
- /*
- #include <openssl/ssl.h>
- #include <openssl/crypto.h>
- #include <openssl/err.h>
- */
-
- /* Library internal definictions */
- #ifdef HTS_INTERNAL_BYTECODE
-
- /* OpenSSL definitions */
- #define SSL_shutdown hts_ptrfunc_SSL_shutdown
- #define SSL_free hts_ptrfunc_SSL_free
- #define SSL_new hts_ptrfunc_SSL_new
- #define SSL_clear hts_ptrfunc_SSL_clear
- #define SSL_set_fd hts_ptrfunc_SSL_set_fd
- #define SSL_set_connect_state hts_ptrfunc_SSL_set_connect_state
- #define SSL_connect hts_ptrfunc_SSL_connect
- #define SSL_get_error hts_ptrfunc_SSL_get_error
- #define SSL_write hts_ptrfunc_SSL_write
- #define SSL_read hts_ptrfunc_SSL_read
- #define SSL_library_init hts_ptrfunc_SSL_library_init
- #define ERR_load_crypto_strings hts_ptrfunc_ERR_load_crypto_strings
- #define ERR_load_SSL_strings hts_ptrfunc_ERR_load_SSL_strings
- #define SSLv23_client_method hts_ptrfunc_SSLv23_client_method
- #define SSL_CTX_new hts_ptrfunc_SSL_CTX_new
- #define ERR_error_string hts_ptrfunc_ERR_error_string
- #define SSL_load_error_strings hts_ptrfunc_SSL_load_error_strings
- #define SSL_CTX_ctrl hts_ptrfunc_SSL_CTX_ctrl
-
- #endif
-
- /* */
- typedef void SSL_CTX;
- typedef void* SSL;
- typedef void SSL_METHOD;
- typedef int (*t_SSL_shutdown)(SSL *ssl);
- typedef void (*t_SSL_free)(SSL *ssl);
- typedef SSL (*t_SSL_new)(SSL_CTX *ctx);
- typedef int (*t_SSL_clear)(SSL *ssl);
- typedef int (*t_SSL_set_fd)(SSL *ssl, int fd);
- typedef void (*t_SSL_set_connect_state)(SSL *ssl);
- typedef int (*t_SSL_connect)(SSL *ssl);
- typedef int (*t_SSL_get_error)(SSL *ssl, int ret);
- typedef int (*t_SSL_write)(SSL *ssl, const void *buf, int num);
- typedef int (*t_SSL_read)(SSL *ssl, void *buf, int num);
- typedef int (*t_SSL_library_init)(void);
- typedef void (*t_ERR_load_crypto_strings)(void);
- typedef void (*t_ERR_load_SSL_strings)(void);
- typedef SSL_METHOD * (*t_SSLv23_client_method)(void);
- typedef SSL_CTX * (*t_SSL_CTX_new)(SSL_METHOD *method);
- typedef char * (*t_ERR_error_string)(unsigned long e, char *buf);
- typedef void (*t_SSL_load_error_strings)(void);
- typedef long (*t_SSL_CTX_ctrl)(SSL_CTX *ctx, int cmd, long larg, char *parg);
-
- /* Library internal definictions */
- #ifdef HTS_INTERNAL_BYTECODE
-
- extern int SSL_is_available;
- extern t_SSL_shutdown SSL_shutdown;
- extern t_SSL_free SSL_free;
- extern t_SSL_new SSL_new;
- extern t_SSL_clear SSL_clear;
- extern t_SSL_set_fd SSL_set_fd;
- extern t_SSL_set_connect_state SSL_set_connect_state;
- extern t_SSL_connect SSL_connect;
- extern t_SSL_get_error SSL_get_error;
- extern t_SSL_write SSL_write;
- extern t_SSL_read SSL_read;
- extern t_SSL_library_init SSL_library_init;
- extern t_ERR_load_crypto_strings ERR_load_crypto_strings;
- extern t_ERR_load_SSL_strings ERR_load_SSL_strings;
- extern t_SSLv23_client_method SSLv23_client_method;
- extern t_SSL_CTX_new SSL_CTX_new;
- extern t_ERR_error_string ERR_error_string;
- extern t_SSL_load_error_strings SSL_load_error_strings;
- extern t_SSL_CTX_ctrl SSL_CTX_ctrl;
-
- #endif
-
- /*
- From /usr/include/openssl/ssl.h
- */
- #define SSL_ERROR_NONE 0
- #define SSL_ERROR_SSL 1
- #define SSL_ERROR_WANT_READ 2
- #define SSL_ERROR_WANT_WRITE 3
- #define SSL_ERROR_WANT_X509_LOOKUP 4
- #define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */
- #define SSL_ERROR_ZERO_RETURN 6
- #define SSL_ERROR_WANT_CONNECT 7
- #define SSL_OP_ALL 0x000FFFFFL
- #define SSL_CTRL_OPTIONS 32
- #define SSL_CTX_set_options(ctx,op) \
- SSL_CTX_ctrl(ctx,SSL_CTRL_OPTIONS,op,NULL)
-
- //#include <openssl/bio.h>
- /* OpenSSL structure */
- extern SSL_CTX *openssl_ctx;
-
- #endif
- #endif
-
- #endif
-